package com.zhisheng.service.impl;

import com.zhisheng.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Service
public class FileServiceImpl implements FileService {

    @Override
    public String uploadFile(MultipartFile file) throws IOException {
        /*
          本地存储文件的方式
          1.获取真实文件名（获取文件后缀）
          2.为了防止文件名重复，使用UUID生成唯一的文件名
          3.将文件存储到本地磁盘
        */
        // 检查文件是否为 null 或为空
        if (file == null || file.isEmpty()) {
            throw new IllegalArgumentException("上传的文件不能为空");
        }
        //拿到文件名   file.getOriginalFilename()
        String filename = file.getOriginalFilename();
        //先找到最后一个点的位置，然后截取字符串
        //String suffix = filename.substring(filename.lastIndexOf("."));
        /*int i= filename.lastIndexOf(".");
        String substring = filename.substring(i>0?i:0);*/
        //第二种方式
        String[] arr = filename.split("\\.");
        String ext = arr[arr.length-1];
        //生成唯一的文件名
        String uuid = UUID.randomUUID().toString() + "." + ext;
        File file1 = new File("D:\\upload\\"+uuid);
        //真正的保存
        file.transferTo(file1);

        return null;
    }
}
